On Static Timing Analysis of GPU Kernels
نویسنده
چکیده
We study static timing analysis of programs running on GPU accelerators. Such programs follow a data parallel programming model that allows massive parallelism on manycore processors. Data parallel programming and GPUs as accelerators have received wide use during the recent years. The timing analysis of programs running on single core machines is well known and applied also in practice. However for multicore and manycore machines, timing analysis presents a significant but yet not properly solved problem. In this paper, we present static timing analysis of GPU kernels based on a method that we call abstract CTA simulation. Cooperative Thread Arrays (CTA) are the basic execution structure that GPU devices use in their operation that proceeds in thread groups called warps. Abstract CTA simulation is based on static analysis of thread divergence in warps and their abstract scheduling. 1998 ACM Subject Classification F.3.2 Semantics of Programming Languages
منابع مشابه
The VerCors Tool Set: Verification of Parallel and Concurrent Software
models are process algebra terms Wytse Oortwijn, UTwente Verifying Concurrent Software 25 / 30 Introduction Deterministic Parallelism GPU Kernels Model Abstractions Conclusion Our approach: deducative + algorithmic verification requires Process(P); ensures Process(ε); void main(args) { S1 ‖ S2; } Process algebras abstraction Algorithmic analysis input Temporal properties LTL, CTL, etc. input De...
متن کاملEngineering a Static Verification Tool for GPU Kernels
We report on practical experiences over the last 2.5 years related to the engineering of GPUVerify, a static verification tool for OpenCL and CUDA GPU kernels, plotting the progress of GPUVerify from a prototype to a fully functional and relatively efficient analysis tool. Our hope is that this experience report will serve the verification community by helping to inform future tooling efforts.
متن کاملThe GPUVerify Method: a Tutorial Overview
I present a tutorial overview demonstrating the key technique used by GPUVerify, a static verification tool for graphics processing unit (GPU) kernels. The technique is a method for translating a massively parallel GPU kernel into a sequential program such that correctness of the sequential program implies data race-freedom of the parallel kernel.
متن کاملAutomatic Termination Analysis for GPU Kernels∗
We describe a method for proving termination of massively parallel GPU kernels. An implementation in KITTeL is able to show termination of 94% of the 598 kernels in our benchmark suite.
متن کاملInterleaving and Lock-Step Semantics for Analysis and Verification of GPU Kernels
We study semantics of GPU kernels — the parallel programs that run on Graphics Processing Units (GPUs). We provide a novel lock-step execution semantics for GPU kernels represented by arbitrary reducible control flow graphs and compare this semantics with a traditional interleaving semantics. We show for terminating kernels that either both semantics compute identical results or both behave err...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2014